In [1]:
from IPython.display import HTML
HTML('''<script>
code_show=true; 
function code_toggle() {
 if (code_show){
 $('div.input').hide();
 } else {
 $('div.input').show();
 }
 code_show = !code_show
} 
$( document ).ready(code_toggle);
</script>
The raw code for this IPython notebook is by default hidden for easier reading.
To toggle on/off the raw code, click <a href="javascript:code_toggle()">here</a>.''')
Out[1]:
The raw code for this IPython notebook is by default hidden for easier reading. To toggle on/off the raw code, click here.
In [2]:
#hide warnings
HTML('''<script>
code_show_err=true; 
function code_toggle_err() {
 if (code_show_err){
 $('div.output_stderr').hide();
 } else {
 $('div.output_stderr').show();
 }
 code_show_err = !code_show_err
} 
$( document ).ready(code_toggle_err);
</script>
To toggle on/off output errors, click <a href="javascript:code_toggle_err()">here</a>.''')
Out[2]:
To toggle on/off output errors, click here.
In [3]:
print('Testing GAL4 lines upstream to 64A11-LexA')
print('Project A83, Daniel Bushey')
Testing GAL4 lines upstream to 64A11-LexA
Project A83, Daniel Bushey
In [4]:
from IPython.core.display import display, HTML
display(HTML("<style>.container { width:100% !important; }</style>"))
In [5]:
import pandas as pd
import os
import sys
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
import ccModules as cc
import ccModules2 as cc2

from IPython.html.widgets import interact
import pandas as pd
from IPython.display import IFrame
from bokeh.palettes import Spectral4
from bokeh.plotting import figure, output_file, show
/media/daniel/Windows1/Users/dnabu/Desktop/ResearchYogaWindows/DataJ/Programming/Python/Modules/tifffile.py:265: UserWarning: failed to import the optional _tifffile C extension module.
Loading of some compressed images will be very slow.
Tifffile.c can be obtained at http://www.lfd.uci.edu/~gohlke/
  "failed to import the optional _tifffile C extension module.\n"
/home/daniel/anaconda3/lib/python3.6/site-packages/IPython/html.py:14: ShimWarning: The `IPython.html` package has been deprecated since IPython 4.0. You should import from `notebook` instead. `IPython.html.widgets` has moved to `ipywidgets`.
  "`IPython.html.widgets` has moved to `ipywidgets`.", ShimWarning)
In [6]:
#load project  specific parameters
from A83_init20181228 import *
path1 /home/daniel/Desktop/ResearchUbuntuYoga720/A83_A6411/A83_Data
In [7]:
#load data
#load pandas data frame
exceldata = pd.read_hdf(os.path.join(saveFig, 'Compiled_data.hdf5'), 'data')
#print(exceldata.shape)
#exceldata = exceldata[exceldata['Grade'] == 1]
In [8]:
print('Checking how many sessions included in the loaded data set:')
print(len(exceldata))
Checking how many sessions included in the loaded data set:
24
In [9]:
#pull out roi data and add each roi as separate row
exceldata = cc2.pullIntensityData(exceldata)
In [10]:
#check parameters within data
parameters_to_compare = ['Genotype']
print('These are the different conditions tested.')
for cp in parameters_to_compare:
    print('Parameter:', cp)
    print(exceldata[cp].unique())
These are the different conditions tested.
Parameter: Genotype
['MB112C' 'MB434B' 'MB011B' 'SS32259' 'SS45234' 'MB082C' 'MB310C'
 'SS33917']
In [11]:
#Get counts
print('Number of animals tested.')
groups = exceldata.groupby(['Genotype', 'roi'])
groups['roi'].count()
Number of animals tested.
Out[11]:
Genotype  roi       
MB011B    Background    3
          Bridge        2
          FB            2
          Region1       3
MB082C    Background    4
          Bridge        4
          FB            3
          Region1       4
MB112C    Background    3
          Bridge        3
          FB            2
          Region1       3
MB310C    Background    2
          Bridge        2
          FB            1
          Region1       2
MB434B    Background    3
          Bridge        3
          FB            2
          Region1       3
SS32259   Background    2
          Bridge        2
          FB            1
          Region1       2
SS33917   Background    4
          Bridge        4
          FB            2
          Region1       4
SS45234   Background    3
          Bridge        3
          FB            1
          Region1       3
Name: roi, dtype: int64
In [12]:
from bokeh.io import output_notebook, show
from bokeh.plotting import figure, output_file, show, ColumnDataSource
from bokeh.models import Range1d
In [13]:
output_notebook()
Loading BokehJS ...
In [14]:
#create a dictionary holding data
raw_data={}
notroi = 'Background' #will look at all rois except background
for cgroup, frame1 in exceldata.groupby('Genotype'):
    crois = frame1['roi'].unique()
    crois = [ccroi for ccroi in crois if ccroi != notroi]
    for croi in crois:
        groupname = cgroup + '_' + croi
        frame2 = frame1[frame1['roi'] == croi]
        if len(frame2) != 0:
            frame3 = cc2.intensityDataFrame(frame2)
            raw_data[groupname] = frame3.subtractBackground(exceldata)
In [15]:
print('Stimulation Protocol')
volt = cc2.intensityDataFrame(exceldata).getVoltage()
timevolt = np.arange(0, len(volt))/100
plot=figure(y_range = (timevolt[0], timevolt[-1]), x_range = (0, 0.9), plot_width=600, plot_height=200)
plot=figure( plot_width=600, plot_height=200)
source = ColumnDataSource(data=dict(y=volt, x= timevolt ))
plot.line('x', 'y', source = source, line_width = 3, line_color ='red')
plot.x_range = Range1d(0, np.max(timevolt)*1.05)
plot.y_range = Range1d(0,np.max(volt)*1.05)
plot.xaxis.axis_label = 'Time (S)'
plot.yaxis.axis_label = 'Volt (V)'
#plot.line(timevolt,volt)
#output_file("StimProtocol.html", title = 'Stimulation Protocol')
show(plot)
Stimulation Protocol
In [16]:
from bokeh.models import LinearAxis, Range1d
from bokeh.palettes import Spectral5
from bokeh.models import Legend
In [17]:
#graphing the only responder
print('Only one sample from SS45234 appeared to respond to the stimulation.')
ckey = 'SS45234_Region1'
timeStamp = cc2.intensityDataFrame(exceldata).getTimeStamp()
responder = exceldata[exceldata['Responds'] == 1]
responder = responder[responder['roi'] == 'Region1']
response = cc2.intensityDataFrame(responder)
data = np.vstack(response.subtractBackground(exceldata)['intensity'].values)
min1 = np.min(data)
max1 = np.max(data)
p = figure(plot_width=800, plot_height=400, y_range=Range1d(min1, max1), x_range = Range1d(0, np.max(timeStamp)), x_axis_label = 'Time (S)', y_axis_label = 'Intensity - Background')
#plot showing voltage
p.title.text = ckey
p.extra_y_ranges = {"foo": Range1d(start=-0, end=2)}
p.add_layout(LinearAxis(y_range_name='foo', axis_label = 'Volt (V)'), 'right')
c = p.line(timevolt, volt, y_range_name = 'foo', line_color = (255,0, 0), line_alpha=0.5, line_width =2)

#plot showing mean data results
legend_it = [('Voltage', [c])]
c = p.line(x=timeStamp, y=np.mean(data, axis=0), line_width=2, line_color = (0, 0, 0))
legend_it.append(('Mean', [c]))
for row in range(0,data.shape[0]):
    c = p.line(x=timeStamp, y=data[row, :], line_width=2, line_color = (150, 150, 150), line_alpha = 0.5) #line_color = colors[cgroup])
    legend_it.append((raw_data[ckey]['Sample Name'].iloc[row], [c]))


#p.sizing_mode = 'scale_width'

legend = Legend(items = legend_it, location=(0, 100))
legend.click_policy="hide"
p.add_layout(legend, 'right')




#p.x_range = Range1d(0, 450)
p.y_range = Range1d(min1, max1)
#output_file("Mean-RawIntensity.html", title = 'Stimulation Protocol')
#p.patch(timevolt2, volt2, y_range_name = 'foo')
show(p)
Only one sample from SS45234 appeared to respond to the stimulation.
In [18]:
print('However, other SS45234 samples did not respond.')
ckey = 'SS45234_Region1'
#get the min and max range for the data
data = np.vstack(raw_data[ckey]['intensity'])
min1 = np.min(data)
max1 = np.max(data)
p = figure(plot_width=800, plot_height=400, y_range=Range1d(min1, max1), x_range = Range1d(0, np.max(timeStamp)), x_axis_label = 'Time (S)', y_axis_label = 'Intensity - Background')
#plot showing voltage
p.title.text = ckey
p.extra_y_ranges = {"foo": Range1d(start=-0, end=2)}
p.add_layout(LinearAxis(y_range_name='foo', axis_label = 'Volt (V)'), 'right')
c = p.line(timevolt, volt, y_range_name = 'foo', line_color = (255,0, 0), line_alpha=0.5, line_width =2)

#plot showing mean data results
legend_it = [('Voltage', [c])]
c = p.line(x=timeStamp, y=np.mean(data, axis=0), line_width=2, line_color = (0, 0, 0))
legend_it.append(('Mean', [c]))
for row in range(0,data.shape[0]):
    c = p.line(x=timeStamp, y=data[row, :], line_width=2, line_color = (150, 150, 150), line_alpha = 0.5) #line_color = colors[cgroup])
    legend_it.append((raw_data[ckey]['Sample Name'].iloc[row], [c]))


#p.sizing_mode = 'scale_width'

legend = Legend(items = legend_it, location=(0, 100))
legend.click_policy="hide"
p.add_layout(legend, 'right')




#p.x_range = Range1d(0, 450)
p.y_range = Range1d(min1, max1)
#output_file("Mean-RawIntensity.html", title = 'Stimulation Protocol')
#p.patch(timevolt2, volt2, y_range_name = 'foo')
show(p)
However, other SS45234 samples did not respond.
In [19]:
print('Responses from all GAL4 drivers lines.')
print('Titles for each graph indicated GAL4 and ROI where signal was measured.')
#Intensity Data (subtract background plot)
#Each figure will plot a different gentoype
#black line is mean value
#light grey lines are individual data
timeStamp = cc2.intensityDataFrame(exceldata).getTimeStamp()
for ckey in list(raw_data.keys()):
    #get the min and max range for the data
    data = np.vstack(raw_data[ckey]['intensity'])
    min1 = np.min(data)
    max1 = np.max(data)
    p = figure(plot_width=800, plot_height=400, y_range=Range1d(min1, max1), x_range = Range1d(0, np.max(timeStamp)), x_axis_label = 'Time (S)', y_axis_label = 'Intensity - Background')
    #plot showing voltage
    p.title.text = ckey
    p.extra_y_ranges = {"foo": Range1d(start=-0, end=2)}
    p.add_layout(LinearAxis(y_range_name='foo', axis_label = 'Volt (V)'), 'right')
    c = p.line(timevolt, volt, y_range_name = 'foo', line_color = (255,0, 0), line_alpha=0.5, line_width =2)

    #plot showing mean data results
    legend_it = [('Voltage', [c])]
    c = p.line(x=timeStamp, y=np.mean(data, axis=0), line_width=2, line_color = (0, 0, 0))
    legend_it.append(('Mean', [c]))
    for row in range(0,data.shape[0]):
        c = p.line(x=timeStamp, y=data[row, :], line_width=2, line_color = (150, 150, 150), line_alpha = 0.5) #line_color = colors[cgroup])
        legend_it.append((raw_data[ckey]['Sample Name'].iloc[row], [c]))


    #p.sizing_mode = 'scale_width'

    legend = Legend(items = legend_it, location=(0, 100))
    legend.click_policy="hide"
    p.add_layout(legend, 'right')


    

    #p.x_range = Range1d(0, 450)
    p.y_range = Range1d(min1, max1)
    #output_file("Mean-RawIntensity.html", title = 'Stimulation Protocol')
    #p.patch(timevolt2, volt2, y_range_name = 'foo')
    show(p)
Responses from all GAL4 drivers lines.
Titles for each graph indicated GAL4 and ROI where signal was measured.
In [ ]: